<!DOCTYPE html>
<html>
<head>
<title>RTCPeerConnection-crash-tests</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
</head>
<body>
<script>
'use strict;'

promise_test(async t => {
  if (sessionStorage.getItem('test-state') === 'reloading') {
    return; // success
  }
  sessionStorage.setItem('test-state', 'starting');
  const pc1 = new RTCPeerConnection();
  const pc2 = new RTCPeerConnection();
  pc1.onicecandidate = (ev) => {
    if (ev.candidate) {
      pc2.addIceCandidate(ev.candidate);
    }
  }
  pc2.onicecandidate = (ev) => {
    if (ev.candidate) {
      pc1.addIceCandidate(ev.candidate);
    }
  }
  const dc = pc1.createDataChannel('foo');

  const offer = await pc1.createOffer();
  racer = pc1.setLocalDescription(offer);
  sessionStorage.setItem('test-state', 'reloading');
  location.reload();
  // Note - execution continues after reload.
  await racer;
  await pc2.setRemoteDescription(offer);
  const answer = await pc2.createAnswer();
  await pc2.setLocalDescription(answer);
}, 'Reload while negotiating PC with SCTP connection does not crash');

</script>
</body>
</html>
